package com.wkh.test;

import com.wkh.datastructure.DynamicArray;
import org.junit.Assert;
import org.junit.Test;

import java.lang.reflect.Array;
import java.util.Arrays;
import java.util.List;
import java.util.function.Consumer;

public class DynamicArrayDemo1 {
    @Test
    public void DynamicArrayTest1(){
        DynamicArray dynamicArray = new DynamicArray();
        dynamicArray.addLast(1);
        dynamicArray.addLast(2);
        dynamicArray.addLast(3);
        dynamicArray.addLast(4);
        dynamicArray.addLast(5);
        dynamicArray.add(2,6);
        /*for (int i = 0;i<dynamicArray.length();i++){
            System.out.println(dynamicArray.get(i));
        }*/
        /*dynamicArray.forEach(new Consumer<Integer>() {
            @Override
            public void accept(Integer element) {
                System.out.println(element);
            }
        });*/
        dynamicArray.list((element) -> {System.out.println(element);});
    }

    @Test
    public void DynamicArrayTest2(){
        DynamicArray dynamicArray = new DynamicArray();
        dynamicArray.addLast(1);
        dynamicArray.addLast(2);
        dynamicArray.addLast(3);
        dynamicArray.addLast(4);
        dynamicArray.addLast(5);
        dynamicArray.add(2,6);
        for (Object element : dynamicArray) {// hasNext() next()
            System.out.println(element);
        }
    }

    @Test
    public void test(){
        int[] arr = {1,2,3,4,5};
        int[] copy = Arrays.copyOfRange(arr, 0, 2);//前闭后开
        System.out.println(Arrays.toString(copy));
    }

    //删除指定元素
    @Test
    public void testDelete(){
        DynamicArray dynamicArray = new DynamicArray();
        dynamicArray.addLast(1);
        dynamicArray.addLast(2);
        dynamicArray.addLast(3);
        dynamicArray.addLast(4);
        dynamicArray.addLast(5);
        dynamicArray.add(2,6);

        Integer result = (Integer) dynamicArray.remove(2);
        Assert.assertSame(6,result);
        Integer num = (Integer) dynamicArray.remove(4);
        Assert.assertSame(5,num);
        dynamicArray.list(new Consumer<Integer>() {
            @Override
            public void accept(Integer integer) {
                System.out.println(integer);
            }
        });
    }
    @Test
    public void testGet(){
        DynamicArray<Integer> array = new DynamicArray<>();
        for (int i = 0; i < 10; i++) {
            array.addLast(i+1);
        }
        Integer element = (Integer) array.get(2);
        System.out.println(element);
    }
}
